package br.com.ff.equipamento.dao;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import br.com.ff.commons.dao.BaseDAOImpl;
import br.com.ff.equipamento.entidade.Equipamento;

public class EquipamentoDAOImpl extends BaseDAOImpl implements EquipamentoDAO {

	public EquipamentoDAOImpl(EntityManager entityManager) {
		super(entityManager);
	}

	@Override
	public List<Equipamento> findByParams(Equipamento equipamento) {
		String queryStr = "SELECT object(e) FROM Equipamento e ";
		
		String serial = equipamento.getSerial();		
		boolean serialFlag = false;
		
		if (serial != null && !serial.equals("")) {
			queryStr += "WHERE e.serial = :serialP";
			serialFlag = true;
		}
		
		Query query = getEntityManager().createQuery(queryStr);
		
		if (serialFlag) {
			query.setParameter("serialP", serial);
		}
		
		List<Equipamento> equipamentos = query.getResultList();
		return equipamentos;
	}

	public List<Equipamento> findEquipamentosDisponiveis() {
		Query query = getEntityManager().createNamedQuery("findDisponiveis");
		return query.getResultList();
	}


}
